package com.my.mycommoncore.utils;

import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;

public class BeanCopyUtils extends BeanUtils {


    /**
     *
     * @param sourceList  源类
     * @param target    目标列表
     * @return   拷贝结果
     * @param <S> 源类的类型
     * @param <T>  目标类的类型
     */
    public static <S,T> List<T> copyList(List<S> sourceList, Supplier<T> target) {
        List<T> list = new ArrayList<>(sourceList.size());
        for (S s : sourceList) {
            T t = target.get();
            copyProperties(s,t);
            list.add(t);
        }
        return list;
    }
}
